goransnotesfandomcom-20200213-history
LCIO (Linear Collider I/O) and ROOT Notes
Quick Reference * LCIO Homepage * LCIO Users Manual * LCIO C++ API Documentation * TODO: Link to a zip file with some useful LCIO docs. * ROOT Data Analysis Framework Homepage * ROOT Documentation * ROOT User's Guide * ROOT HowTo's * ROOT Tutorials * ROOT Reference Guide * ROOT FAQ's LCIO Overview LCIO (Linear Collider I/O) is a light-weight, portable framework for linear collider detector studies (simulation studies or real data analysis scenarios, or in detector R&D test beam applications). There is a C++ and a Java implementation, both with a common API; a Fortran interface to the C++ implementation also exists. It is designed to integrate with other linear colider software chains, as a tool that can generate, store, read and manipulate linear collider data; to this end it defines a data model (that is, it defines how the data is represented conceptually and in computer memory), and a corresponding file format to support persistency (data storage) capabilities. The data model includes an event model, as a way to represent dynamic changes (events) in the system; events hold collections of simulation and reconstruction output quantities. In linear collider detector studies, the components of the software chain used can be roughly categorized into four groups as depicted by the schematic below. Simulations are produced by tools which generate particle events (such as a specific kind of collision), represented using a standardized format; then the typical practice was to use team-specific or institution-specific software (and formats!) to simulate different scenarios for a given event; these simulations produce outputs which are then used to reconstruct and analyses the collision picture. This leads to problems when it comes to sharing data and results; LCIO provides a way to avoid such problems by supporting a wide spectrum of requirements and introducing a standardized data format to be used across research groups. Integration with LCIO may or may not involve intermediate conversion steps to and from the LCIO format. There are three major use cases for LCIO, with regard to how it can be integrated with these software chains: writing data (simulation), reading and extending data (reconstruction) and read only access (analysis). Using a common persistency format and event data model allows to easily share results and compare reconstruction algorithms. LCIO is used by almost all groups involved in linear collider detector studies and thus has become a de facto standard. One of the main goals of LCIO is the unification of software that is used in the international linear collider community. For more detail, see the LCIO page. ROOT Overview Content Goes Here Using LCIO and ROOT Together Many high-energy physicists have become accustomed to using ROOT for their analysis needs. Although some effort has been devoted to providing an LCIO persistency binding using native ROOT classes, the resulting files were found to be larger and less performant than those based on SIO. Therefore, the recommended way to access LCIO files via ROOT is to use the class dictionary which is provided as part of the LCIO release. Other Resources * Monte Carlo Number Scheme - Particle Group Data (PGD) codes and Monte Carlo Particle Numbering Scheme * C++ Tutorial and Reference Category:C++ Category:API Category:Linear Colider Category:Particle Physics Category:LCIO Category:ROOT